﻿using ImModels.Service.Models.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ImModels.View
{

    /// <summary>
    /// 消息查询 入参
    /// </summary>
    public class MsgQueryReq
    {
        /// <summary>
        /// 会话ID
        /// </summary>
        public long SessionId { get; set; } = 0;

        /// <summary>
        /// 是否是群聊 0私聊 1群聊
        /// </summary>
        public short IsGroup { get; set; } = 0;
    }

    /// <summary>
    /// 消息查询 返回视图
    /// </summary>
    public class MsgQueryRes
    {
        /// <summary>
        /// 消息唯一ID
        /// </summary>
        public long MsgId { get; set; } = 0;

        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 会话ID
        /// </summary>
        public long SessionId { get; set; } = 0;

        /// <summary>
        /// 消息类型
        /// 0普通文本消息 
        /// 1系统提示(算不上聊天消息，比如建群，加群，风险 转账 提示等) 内容一般为文本，只是前端显示 可以 换个格式而已
        /// </summary>
        public int MsgType { get; set; } = 0;

        /// <summary>
        /// 消息内容，Json格式 自定义内容格式
        /// 建议格式：{"type":"0--10, 0普通聊天，1订单 2物料 3投诉 4工单 等等","msg":'xxxxxxxxxxxxxxxxxxx' //msg的值就根据 type的类型 自行组织，发什么，收到就是什么}
        /// </summary>
        public string Content { get; set; } = "";

        /// <summary>
        /// 发送者
        /// </summary>
        public string FromBizUserId { get; set; } = "";

        /// <summary>
        /// 发送者信息
        /// </summary>
        public Users FromUser { get; set; }

        /// <summary>
        /// 【私聊有值】接收用户ID，当为私聊的时候有值
        /// </summary>
        public string ToBizUserId { get; set; } = "";

        /// <summary>
        /// 【私聊有值】接受者信息
        /// </summary>
        public Users ToUser { get; set; }

        /// <summary>
        /// 【私聊有值】私聊信息是否已读  阅读时间 为空 表示未读
        /// </summary>
        public string ReadTime { get; set; } = "";

        /// <summary>
        /// 【群聊有值】接收群ID，当为群聊的时候有值
        /// </summary>
        public long ToGroupId { get; set; } = 0;


        /// <summary>
        /// 【群聊有值】群消息 阅读时间
        /// </summary>
        public List<MsgReadTime> GroupMsgRead { get; set; }

        /// <summary>
        /// 【群聊有值】接收消息总人数，发送消息的时候 群人数，后入群的不需要发离线消息
        /// </summary>
        public int GroupUserCnt { get; set; } = 0;

        /// <summary>
        /// 【群聊有值】已读消息总人数
        /// </summary>
        public int GroupReadCnt { get; set; } = 0;
    }
}
